package cn.walls1717.wallsmall.product.service;

import cn.walls1717.wallsmall.product.entity.CategoryEntity;
import cn.walls1717.wallsmall.product.vo.Catelog2Vo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 商品三级分类
 *
 * @author walls1717
 * @email walls1717@163.com
 * @date 2022-10-21 11:26:47
 */
public interface CategoryService extends IService<CategoryEntity> {

    /**
     * 树形展示商品三级分类
     *
     * @return 商品分类集合
     */
    List<CategoryEntity> listCategoriesWithTree();

    /**
     * 找到catelogId的完整路径 [父/子/孙]
     *
     * @param catelogId 类别id
     * @return 层级完整路径
     */
    Long[] getCatalogPath(Long catelogId);

    /**
     * 修改分类信息同时修改相关联的所有信息，保证冗余字段的数据一致性
     *
     * @param category 分类参数
     */
    void updateDetail(CategoryEntity category);

    /**
     * 获取一级分类
     *
     * @return 一级分类
     */
    List<CategoryEntity> listOneLevelCategories();

    Map<String, List<Catelog2Vo>> getCatalogJson();
}
